package com.jiyu.pojo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;

import javax.persistence.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder//生成相对略微复杂的构建器API
@Entity//实体类
@Table(name = "user")//对应的表名
@ToString
@JsonIgnoreProperties({"handler","hibernateLazyInitializer"})
/*因为前后端分离,数据交互用的是 json 格式。User 对象就会被转换为 json 数据。
而jpa 默认会使用 hibernate,在 jpa 工作过程中，就会创造代理类来继承 User ，
并添加 handler 和 hibernateLazyInitializer 这两个无须 json 化的属性，
所以这里需要用 JsonIgnoreProperties 把这两个属性忽略掉。*/

public class User {

    @Id//标记id，引入自动增长
    @GeneratedValue(strategy = GenerationType.IDENTITY)//主键生成策略  主键由数据库自动生成（主要是自动增长型）
    @Column(name = "id")
    int id;

    String username;
    String password;
    String salt;
    String role;
}
